/******************************************************************************* 
  Copyright (C), 1988-2020, zeno Tech. Co., Ltd.
  Description:  LED模块
  Function List:   
*******************************************************************************/
#ifndef LED_H 
#define LED_H 

#ifdef __cplusplus
extern "C" {
#endif

/*=============================================================================
                                 Includes                                  
==============================================================================*/


/*=============================================================================
                               Macro Definition
==============================================================================*/

                        
/*=============================================================================
                        Local Structures and Typedef 
==============================================================================*/
typedef struct
{
	unsigned char r;
	unsigned char g;
	unsigned char b;
	unsigned char a;
} LedColor_t;

typedef struct
{
	int ledId;				/* 物理灯编号 */
	int onCycle;			/* 亮灯时间（闪烁模式有效），单位ms */
	int offCycle;			/* 灭灯时间（闪烁模式有效），单位ms */
	int mode;      			/* 灯工作模式， 0常灭， 1常亮， 2闪烁， 3呼吸灯 */
	int strength;			/* 光亮强度(0-1000) */
	int periodCnt;          /* 闪烁次数，-1不计次数，闪烁结束保持灭灯颜色状态 */
	LedColor_t onColor;		/* 亮灯颜色 */
	LedColor_t offColor;	/* 灭灯颜色（闪烁模式有效）*/
	int ledType;            /* 0:gpio, 1:pwm */
	int reserved[23];		/* 保留 */
} LedState_t;

/*=============================================================================
                             extern  Variables                                  
==============================================================================*/

/*=============================================================================
                             Function Definition                                  
==============================================================================*/ 

/*******************************************************************************
  Function:     SysLedSet
  Description:  设置LED
  Input:        - ledState: led状态参数
  Output:       无
  Return:       0: 操作成功
                ~0: 操作失败
  Others:       无
*******************************************************************************/ 
int SysLedSet(LedState_t ledState);

#ifdef __cplusplus
}
#endif
#endif // LED_H

